<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

</body>
<!-- 千位分割 -->
</html>
<script>
    function toMoneyStr(str) {
        /* 包含小数的情况 */
        let arr = str.split(".");//若包含小数，把原字符串以.为分割界限，把原本字符串分为两部分
        let newarr = [];//定义一个空的数组
        let arr1 = arr[0].split("").reverse();//把原字符串的整数部分转换为数组后，逆序(因为千位分隔符是从后往前分割的)
        for (let i = 0; i < arr1.length; i++) {//遍历整数部分
            if (i % 3 == 0 && i != 0) {//在每三位之后插入一个分隔符(",")
                newarr.push(",")
            }
            newarr.push(arr1[i])//注意:这里的顺序和if与距离的执行语句的顺序不能改变
        }
        newarr.reverse();//翻转拆分后的整数部分
        if (arr[1]) {//如果存在小数部分
            newarr = newarr.join("").concat("." + arr[1])//则拼接整数和小数部分
        } else {
            newarr = newarr.join("");//不存在,则直接把翻转拆分后的整数部分转换为字符串输出
        }
        return newarr;
    }
    console.log(toMoneyStr("1234456.98")); //1,234,456.98
</script>